package com.treasure.mall.biz.service.core.product;

import com.treasure.mall.biz.base.SearchableCrudService;
import com.treasure.mall.biz.entity.product.CategoryPO;
import com.treasure.mall.biz.vo.product.CategoryTreeVo;
import com.treasure.mall.zbq.common.base.ApiResult;

import java.util.List;
import java.util.Map;

/**
 * @author wm
 */
public interface CategoryService extends SearchableCrudService<CategoryPO, Long> {
    /**
     * 获取一级和二级数据
     *
     * @return
     */
    List<CategoryPO> getListLevelTop2();

    /**
     * 获取指定类目下的列表
     *
     * @param parentCatId
     * @return
     */
    List<CategoryPO> getList(Long parentCatId);

    /**
     * 保存类目
     *
     * @param categoryPO
     * @return
     */
    ApiResult addOrUpdateCategory(CategoryPO categoryPO);

    ApiResult addCategory(CategoryPO categoryPO);
    /**
     * 获取类目
     *
     * @param catId
     * @return
     */
    CategoryPO getSingle(long catId);

    /**
     * 删除类目
     *
     * @param catId
     * @return
     */
    ApiResult delCategory(long catId);

    /**
     * 前两层的树
     *
     * @return
     */
    CategoryTreeVo getApiTree();

    /**
     * 得到根节点
     *
     * @param catId
     * @return
     */
    CategoryPO getRootCategory(Long catId);

    /**
     * 得到分类名
     *
     * @param catId
     * @return
     */
    Map<Integer, String> getCategoryNames(List<Integer> catId);
}